(function(global){
		/**
		 * <p>HteOS是全局的命名空间，为了组件化的开发，减少对别的代码污染，所有HteOS提供的组件，都在HteOS对象中。</p>
		 * <p>HteOS提供的所有组件都是以HteOS开头的，例如窗口组件：HteOS.window.Window</p>
		 * <p>Web桌面的启动也是在这个类里面完成的，当所有的依赖组件都加载完成之后启动桌面</p>
		 * @class HteOS
		 * @singleton
		 */
		var HteOS = global.HteOS = (global.HteOS || {});
		/***
		 * 复制所有的属性到目标对象中
		 * */
		HteOS.apply = function(dest,config){
			for(var a in config){
				dest[a] = config[a];
			}
		};
		
		/***
		 * 将参考对象的属性复制到目标对象中，如果该属性对应的值为undefined则不复制
		 * */
		HteOS.applyIf = function(dest,config){
			for(var a in config){
				if(config[a] != undefined){
					dest[a] = config[a];
				}
			}
		};
		
		HteOS.apply(HteOS,{
			
			basePath : "",
			
			introduction : "<p>感谢您关注HteOS，HteOS是一个全新的Web桌面应用开发框架！</p>" +
						"<ul><li>全新UI设计、多套皮肤，使用动态磁贴技术灵活配置，完美适配PC端和移动端</li>" +
						"<li>模块化开发模式，使用SASS进行CSS皮肤设置，使用Grunt自动编译生成文档</li>"+
						"<li>磁贴和图标两种桌面模式，兼容Chrome、Firefox、Edge、IE8+等主流浏览器</li>" +
						"<li>纯前端框架，不依赖于后台语言，与Java、.NET、PHP等服务器平台无缝集成</li></ul>" +
						"<p>如果您对HteOS有问题或者提出宝贵的意见，联系QQ：340025873" + 
						"  <a target=\"_blank\" href=\"http://sighttp.qq.com/authd?IDKEY=b7dfeb58c11a8d42be44ff5a6030dbce1bffa47683a90328\">" 
							+"<img border=\"0\"  src=\"http://pub.idqqimg.com/wpa/images/counseling_style_51.png\" style=\"margin-top:-6px;\" alt=\"联系HteOS\" title=\"联系HteOS\"/></a></p>",
			/**
			 * @property
			 * 应用相关组件的命名空间
			 * */
			app : {},
			/**
			 * @property
			 * 动态磁贴相关的命名空间
			 * */
			tile : {},
			/**
			 * @property
			 * 菜单组件相关的命名空间
			 * */
			menu : {},
			/**
			 * @property
			 * 窗口组件相关的命名空间
			 * */
			window : {},
			/**
			 * @property
			 * 桌面组件相关的命名空间
			 * */
			metro : {},
			/**
			 * @property
			 * 侧边栏组件相关的命名空间
			 * */
			dock :{},
			
			/**
			 * 
			 */
			page:{},
			
			desktop : {}
		});
		
		//设置控制台信息
		HteOS.apply(HteOS,{
			/**
			 *@property 是否为调试模式
			 * 如果在调试模式下调用HteOS.Console.debug将不会输出任何信息
			 * */
			debug : false,
			
			mode : 'metro',
			
			setMode : function(mode){
				this.mode = mode;
			},
			
			/**
			 * 判断当前模式是否是Metro模式
			 */
			isMetro : function(){
				return (this.mode == 'metro');
			},
			
			/**
			 * 判断当前模式是否是桌面模式
			 */
			isDesktop : function(){
				return (this.mode == 'desktop');
			},
				
			
			each : function(obj,fn){
				for(var property in obj){
					if(fn.call(obj,obj[property],property) === false){
						break;
					}
				}
			}
		});
		
		HteOS.getContainer = function(){
			if(this.isDesktop()){
				return HteOS.Desktop.getEl();
			}else{
				return HteOS.Metro.getEl();
			}
		};
		
		//设置控制台信息
		HteOS.apply(HteOS,{
			/**
			 * 编译模板 HteOS.Template.compile
			 */
			compile : function(){
				return HteOS.Template.compile(arguments);
			},
			/**
			 * 对元素进行遮罩
			 */
			mask : function(){
				HteOS.Masker.mask(arguments);
			},
			/**
			 * 取出元素的这早
			 */
			unmask : function(){
				HteOS.Masker.unmask();
			}
		});
		
})(window);

(function(factory) {
	if (typeof define === "function" && define.amd) {
		// AMD. Register as an anonymous module.
		define(factory);
	} else {
		// Browser globals
		factory();
	}
}(function() {
			
}));